[INFO] fetching crate crayon 0.7.1...
[INFO] checking crayon-0.7.1 against master#042c759f774872cf2f94c6685ce87e24c046c722 for pr-156977
[INFO] extracting crate crayon 0.7.1 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate crayon 0.7.1
[INFO] finished tweaking crates.io crate crayon 0.7.1
[INFO] tweaked toml for crates.io crate crayon 0.7.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate crayon 0.7.1 on toolchain 042c759f774872cf2f94c6685ce87e24c046c722
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+042c759f774872cf2f94c6685ce87e24c046c722" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+042c759f774872cf2f94c6685ce87e24c046c722" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 134 packages to latest compatible versions
[INFO] [stderr]       Adding bincode v1.3.3 (available: v3.0.0)
[INFO] [stderr]       Adding cgmath v0.16.1 (available: v0.18.0)
[INFO] [stderr]       Adding crossbeam-deque v0.5.2 (available: v0.8.6)
[INFO] [stderr]       Adding env_logger v0.6.2 (available: v0.11.10)
[INFO] [stderr]       Adding gl v0.10.0 (available: v0.14.0)
[INFO] [stderr]       Adding glutin v0.18.0 (available: v0.32.3)
[INFO] [stderr]       Adding rand v0.5.6 (available: v0.10.1)
[INFO] [stderr]       Adding smallvec v0.6.14 (available: v1.15.2)
[INFO] [stderr]       Adding uuid v0.7.4 (available: v1.23.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+042c759f774872cf2f94c6685ce87e24c046c722" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.125
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.125
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.125
[INFO] [stderr]   Downloaded owning_ref v0.4.1
[INFO] [stderr]   Downloaded inlinable_string v0.1.15
[INFO] [stderr]   Downloaded core-graphics v0.16.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.125
[INFO] [stderr]   Downloaded cocoa v0.17.0
[INFO] [stderr]   Downloaded glutin v0.18.0
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.3.0
[INFO] [stderr]   Downloaded js-sys v0.3.102
[INFO] [stderr]   Downloaded winit v0.17.2
[INFO] [stderr]   Downloaded web-sys v0.3.102
[INFO] [stderr]   Downloaded crossbeam-deque v0.5.2
[INFO] [stderr]   Downloaded cgmath v0.16.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8a534c2f5a415d6d690fe31776eb4ec87a94909e3e4dad488c2df6dec85232ab
[INFO] running `Command { std: "docker" "start" "8a534c2f5a415d6d690fe31776eb4ec87a94909e3e4dad488c2df6dec85232ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8a534c2f5a415d6d690fe31776eb4ec87a94909e3e4dad488c2df6dec85232ab" "/opt/rustwide/cargo-home/bin/cargo" "+042c759f774872cf2f94c6685ce87e24c046c722" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8a534c2f5a415d6d690fe31776eb4ec87a94909e3e4dad488c2df6dec85232ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8a534c2f5a415d6d690fe31776eb4ec87a94909e3e4dad488c2df6dec85232ab" "/opt/rustwide/cargo-home/bin/cargo" "+042c759f774872cf2f94c6685ce87e24c046c722" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]    Compiling parking_lot_core v0.3.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking owning_ref v0.4.1
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]    Compiling arrayvec v0.4.12
[INFO] [stderr]    Compiling gl_generator v0.9.0
[INFO] [stderr]     Checking lock_api v0.1.5
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]     Checking nodrop v0.1.14
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking crossbeam-utils v0.5.0
[INFO] [stderr]     Checking rustc-demangle v0.1.27
[INFO] [stderr]    Compiling cgmath v0.16.1
[INFO] [stderr]     Checking crossbeam-epoch v0.5.2
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]    Compiling glutin v0.18.0
[INFO] [stderr]    Compiling gl v0.10.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.3.0
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking crossbeam-deque v0.5.2
[INFO] [stderr]     Checking env_logger v0.6.2
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking addr2line v0.25.1
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking smallvec v0.6.14
[INFO] [stderr]     Checking inlinable_string v0.1.15
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking uuid v0.7.4
[INFO] [stderr]     Checking parking_lot v0.6.4
[INFO] [stderr]     Checking winit v0.17.2
[INFO] [stderr]     Checking crayon v0.7.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/utils/object_pool.rs:80:41
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 let mut v = ::std::mem::uninitialized();
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/utils/object_pool.rs:103:55
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 std::mem::swap(&mut v, &mut std::mem::uninitialized());
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:236:32
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:296:32
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/sched/scheduler.rs:2:48
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::{AtomicUsize, Ordering, ATOMIC_USIZE_INIT};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/sched/scheduler.rs:353:43
[INFO] [stdout]     |
[INFO] [stdout] 353 |             static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 353 -             static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout] 353 +             static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/ins.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ins: HashMap<String, Arc<Inspectable>>,
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ins: HashMap<String, Arc<dyn Inspectable>>,
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/lifecycle.rs:30:48
[INFO] [stdout]    |
[INFO] [stdout] 30 |     last_frame_lifecycles: Mutex<Vec<Arc<Mutex<LifecycleListener>>>>,
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     last_frame_lifecycles: Mutex<Vec<Arc<Mutex<dyn LifecycleListener>>>>,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/lifecycle.rs:31:69
[INFO] [stdout]    |
[INFO] [stdout] 31 |     lifecycles: Mutex<ObjectPool<LifecycleListenerHandle, Arc<Mutex<LifecycleListener>>>>,
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     lifecycles: Mutex<ObjectPool<LifecycleListenerHandle, Arc<Mutex<dyn LifecycleListener>>>>,
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/res/vfs/mod.rs:20:38
[INFO] [stdout]    |
[INFO] [stdout] 20 |     schemas: FastHashMap<String, Arc<VFS>>,
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     schemas: FastHashMap<String, Arc<dyn VFS>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 |     marker: PhantomData<Box<FnOnce(&Scope<'s>) + Send + Sync + 's>>,
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     marker: PhantomData<Box<dyn FnOnce(&Scope<'s>) + Send + Sync + 's>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 |     panic: AtomicPtr<Box<Any + Send + 'static>>,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     panic: AtomicPtr<Box<dyn Any + Send + 'static>>,
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/job.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Panic(Box<Any + Send>),
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Panic(Box<dyn Any + Send>),
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/system.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<::std::any::Any + Send>) + Send + Sync;
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = dyn Fn(Box<::std::any::Any + Send>) + Send + Sync;
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/system.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<::std::any::Any + Send>) + Send + Sync;
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<dyn (::std::any::Any + Send)>) + Send + Sync;
[INFO] [stdout]    |                                +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]   --> src/utils/object_pool.rs:80:41
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 let mut v = ::std::mem::uninitialized();
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/utils/object_pool.rs:103:55
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 std::mem::swap(&mut v, &mut std::mem::uninitialized());
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:236:32
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:296:32
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:321:32
[INFO] [stdout]     |
[INFO] [stdout] 321 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]  --> src/sched/scheduler.rs:2:48
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::atomic::{AtomicUsize, Ordering, ATOMIC_USIZE_INIT};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::atomic::ATOMIC_USIZE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/sched/scheduler.rs:353:43
[INFO] [stdout]     |
[INFO] [stdout] 353 |             static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated constant
[INFO] [stdout]     |
[INFO] [stdout] 353 -             static COUNTER: AtomicUsize = ATOMIC_USIZE_INIT;
[INFO] [stdout] 353 +             static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/ins.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ins: HashMap<String, Arc<Inspectable>>,
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     ins: HashMap<String, Arc<dyn Inspectable>>,
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/lifecycle.rs:30:48
[INFO] [stdout]    |
[INFO] [stdout] 30 |     last_frame_lifecycles: Mutex<Vec<Arc<Mutex<LifecycleListener>>>>,
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |     last_frame_lifecycles: Mutex<Vec<Arc<Mutex<dyn LifecycleListener>>>>,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/application/lifecycle.rs:31:69
[INFO] [stdout]    |
[INFO] [stdout] 31 |     lifecycles: Mutex<ObjectPool<LifecycleListenerHandle, Arc<Mutex<LifecycleListener>>>>,
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     lifecycles: Mutex<ObjectPool<LifecycleListenerHandle, Arc<Mutex<dyn LifecycleListener>>>>,
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/res/vfs/mod.rs:20:38
[INFO] [stdout]    |
[INFO] [stdout] 20 |     schemas: FastHashMap<String, Arc<VFS>>,
[INFO] [stdout]    |                                      ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     schemas: FastHashMap<String, Arc<dyn VFS>>,
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 |     marker: PhantomData<Box<FnOnce(&Scope<'s>) + Send + Sync + 's>>,
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 |     marker: PhantomData<Box<dyn FnOnce(&Scope<'s>) + Send + Sync + 's>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 |     panic: AtomicPtr<Box<Any + Send + 'static>>,
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 |     panic: AtomicPtr<Box<dyn Any + Send + 'static>>,
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/job.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Panic(Box<Any + Send>),
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Panic(Box<dyn Any + Send>),
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/system.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<::std::any::Any + Send>) + Send + Sync;
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = dyn Fn(Box<::std::any::Any + Send>) + Send + Sync;
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/system.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<::std::any::Any + Send>) + Send + Sync;
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub type PanicHandler = Fn(Box<dyn (::std::any::Any + Send)>) + Send + Sync;
[INFO] [stdout]    |                                +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/res/vfs/mod.rs:36:68
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn locate<T1: AsRef<str>>(&self, schema: T1) -> Result<Arc<VFS>, failure::Error> {
[INFO] [stdout]    |                                                                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn locate<T1: AsRef<str>>(&self, schema: T1) -> Result<Arc<dyn VFS>, failure::Error> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/res/vfs/mod.rs:36:68
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn locate<T1: AsRef<str>>(&self, schema: T1) -> Result<Arc<VFS>, failure::Error> {
[INFO] [stdout]    |                                                                    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn locate<T1: AsRef<str>>(&self, schema: T1) -> Result<Arc<dyn VFS>, failure::Error> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/video/backends/mod.rs:105:28
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn new() -> Result<Box<Visitor>> {
[INFO] [stdout]     |                            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn new() -> Result<Box<dyn Visitor>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/video/backends/mod.rs:119:30
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn new_headless() -> Box<Visitor> {
[INFO] [stdout]     |                              ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn new_headless() -> Box<dyn Visitor> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/video/backends/mod.rs:105:28
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn new() -> Result<Box<Visitor>> {
[INFO] [stdout]     |                            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn new() -> Result<Box<dyn Visitor>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/video/backends/mod.rs:119:30
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn new_headless() -> Box<Visitor> {
[INFO] [stdout]     |                              ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn new_headless() -> Box<dyn Visitor> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/unwind.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn resume_unwinding(payload: Box<Any + Send>) -> ! {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn resume_unwinding(payload: Box<dyn Any + Send>) -> ! {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/window/backends/mod.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn new_headless() -> Box<Visitor> {
[INFO] [stdout]    |                              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn new_headless() -> Box<dyn Visitor> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/window/backends/glutin/mod.rs:9:48
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn new(params: WindowParams) -> Result<Box<Visitor>> {
[INFO] [stdout]   |                                                ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn new(params: WindowParams) -> Result<Box<dyn Visitor>> {
[INFO] [stdout]   |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/unwind.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn resume_unwinding(payload: Box<Any + Send>) -> ! {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn resume_unwinding(payload: Box<dyn Any + Send>) -> ! {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/window/backends/mod.rs:21:30
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn new_headless() -> Box<Visitor> {
[INFO] [stdout]    |                              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn new_headless() -> Box<dyn Visitor> {
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/window/backends/glutin/mod.rs:9:48
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn new(params: WindowParams) -> Result<Box<Visitor>> {
[INFO] [stdout]   |                                                ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn new(params: WindowParams) -> Result<Box<dyn Visitor>> {
[INFO] [stdout]   |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/video/backends/frame.rs:64:23
[INFO] [stdout]    |
[INFO] [stdout] 64 |         visitor: &mut Visitor,
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |         visitor: &mut dyn Visitor,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/video/backends/frame.rs:64:23
[INFO] [stdout]    |
[INFO] [stdout] 64 |         visitor: &mut Visitor,
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |         visitor: &mut dyn Visitor,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sched/scheduler.rs:150:41
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn handle_panic(&self, err: Box<::std::any::Any + Send>) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn handle_panic(&self, err: Box<dyn (::std::any::Any + Send)>) {
[INFO] [stdout]     |                                         +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sched/scheduler.rs:150:41
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn handle_panic(&self, err: Box<::std::any::Any + Send>) {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn handle_panic(&self, err: Box<dyn (::std::any::Any + Send)>) {
[INFO] [stdout]     |                                         +++++                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let value: Box<Box<Any + Send + 'static>> = mem::transmute(panic);
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let value: Box<Box<dyn Any + Send + 'static>> = mem::transmute(panic);
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sched/scope.rs:95:32
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let value: Box<Box<Any + Send + 'static>> = mem::transmute(panic);
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 |             let value: Box<Box<dyn Any + Send + 'static>> = mem::transmute(panic);
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct GLSurfaceData {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 20 |     handle: SurfaceHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLSurfaceData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct GLTextureData {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 83 |     handle: TextureHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLTextureData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct GLRenderTextureData {
[INFO] [stdout]    |        ------------------- field in this struct
[INFO] [stdout] 91 |     handle: RenderTextureHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLRenderTextureData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct GLSurfaceData {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 20 |     handle: SurfaceHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLSurfaceData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct GLTextureData {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] 83 |     handle: TextureHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLTextureData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `handle` is never read
[INFO] [stdout]   --> src/video/backends/gl/visitor.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | struct GLRenderTextureData {
[INFO] [stdout]    |        ------------------- field in this struct
[INFO] [stdout] 91 |     handle: RenderTextureHandle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GLRenderTextureData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn write(&self) -> RwLockWriteGuard<T> {
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn write(&self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:32:27
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn write_back_buf(&self) -> RwLockWriteGuard<T> {
[INFO] [stdout]    |                           ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn write_back_buf(&self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn read_back_buf(&self) -> RwLockReadGuard<T> {
[INFO] [stdout]    |                          ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn read_back_buf(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utils/handle_pool.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn write(&self) -> RwLockWriteGuard<T> {
[INFO] [stdout]    |                  ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn write(&self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:32:27
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn write_back_buf(&self) -> RwLockWriteGuard<T> {
[INFO] [stdout]    |                           ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn write_back_buf(&self) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/utils/double_buf.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn read_back_buf(&self) -> RwLockReadGuard<T> {
[INFO] [stdout]    |                          ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn read_back_buf(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/utils/handle_pool.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `&mut T` does not permit being left uninitialized
[INFO] [stdout]    --> src/utils/object_pool.rs:103:45
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 std::mem::swap(&mut v, &mut std::mem::uninitialized());
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this code causes undefined behavior when executed
[INFO] [stdout]     |                                             help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: references must be non-null
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `&mut T` does not permit being left uninitialized
[INFO] [stdout]    --> src/utils/object_pool.rs:103:45
[INFO] [stdout]     |
[INFO] [stdout] 103 |                 std::mem::swap(&mut v, &mut std::mem::uninitialized());
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             this code causes undefined behavior when executed
[INFO] [stdout]     |                                             help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: references must be non-null
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:123:70
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter<'a>(&'a self) -> impl DoubleEndedIterator<Item = (H, &T)> + 'a {
[INFO] [stdout]     |                      --                                              ^^     -- the same lifetime is named here
[INFO] [stdout]     |                      |                                               |
[INFO] [stdout]     |                      the lifetime is named here                      the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter<'a>(&'a self) -> impl DoubleEndedIterator<Item = (H, &'a T)> + 'a {
[INFO] [stdout]     |                                                                       ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:123:70
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter<'a>(&'a self) -> impl DoubleEndedIterator<Item = (H, &T)> + 'a {
[INFO] [stdout]     |                      --                                              ^^     -- the same lifetime is named here
[INFO] [stdout]     |                      |                                               |
[INFO] [stdout]     |                      the lifetime is named here                      the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn iter<'a>(&'a self) -> impl DoubleEndedIterator<Item = (H, &'a T)> + 'a {
[INFO] [stdout]     |                                                                       ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:147:68
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn values<'a>(&'a self) -> impl DoubleEndedIterator<Item = &T> + 'a {
[INFO] [stdout]     |                        --                                          ^^    -- the same lifetime is named here
[INFO] [stdout]     |                        |                                           |
[INFO] [stdout]     |                        the lifetime is named here                  the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn values<'a>(&'a self) -> impl DoubleEndedIterator<Item = &'a T> + 'a {
[INFO] [stdout]     |                                                                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:147:68
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn values<'a>(&'a self) -> impl DoubleEndedIterator<Item = &T> + 'a {
[INFO] [stdout]     |                        --                                          ^^    -- the same lifetime is named here
[INFO] [stdout]     |                        |                                           |
[INFO] [stdout]     |                        the lifetime is named here                  the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 147 |     pub fn values<'a>(&'a self) -> impl DoubleEndedIterator<Item = &'a T> + 'a {
[INFO] [stdout]     |                                                                     ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:155:76
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn values_mut<'a>(&'a mut self) -> impl DoubleEndedIterator<Item = &mut T> + 'a {
[INFO] [stdout]     |                            --                                              ^^^^^^    -- the same lifetime is named here
[INFO] [stdout]     |                            |                                               |
[INFO] [stdout]     |                            the lifetime is named here                      the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn values_mut<'a>(&'a mut self) -> impl DoubleEndedIterator<Item = &'a mut T> + 'a {
[INFO] [stdout]     |                                                                             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/utils/object_pool.rs:155:76
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn values_mut<'a>(&'a mut self) -> impl DoubleEndedIterator<Item = &mut T> + 'a {
[INFO] [stdout]     |                            --                                              ^^^^^^    -- the same lifetime is named here
[INFO] [stdout]     |                            |                                               |
[INFO] [stdout]     |                            the lifetime is named here                      the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn values_mut<'a>(&'a mut self) -> impl DoubleEndedIterator<Item = &'a mut T> + 'a {
[INFO] [stdout]     |                                                                             ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/video/assets/shader.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn iter(&self) -> AttributeLayoutIter {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn iter(&self) -> AttributeLayoutIter<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/video/assets/shader.rs:463:17
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn iter(&self) -> Values<HashValue<str>, (String, UniformVariableType)> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn iter(&self) -> Values<'_, HashValue<str>, (String, UniformVariableType)> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/video/assets/shader.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn iter(&self) -> AttributeLayoutIter {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 129 |     pub fn iter(&self) -> AttributeLayoutIter<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/video/assets/shader.rs:463:17
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn iter(&self) -> Values<HashValue<str>, (String, UniformVariableType)> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn iter(&self) -> Values<'_, HashValue<str>, (String, UniformVariableType)> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/video/errors.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Fail)]
[INFO] [stdout]   |                 ^---
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Fail` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 2 | pub enum Error {
[INFO] [stdout]   |          ----- `Error` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/video/errors.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Fail)]
[INFO] [stdout]   |                 ^---
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Fail` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 2 | pub enum Error {
[INFO] [stdout]   |          ----- `Error` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/video/errors.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Fail)]
[INFO] [stdout]   |                 ^---
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Display` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 2 | pub enum Error {
[INFO] [stdout]   |          ----- `Error` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/video/errors.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Debug, Fail)]
[INFO] [stdout]   |                 ^---
[INFO] [stdout]   |                 |
[INFO] [stdout]   |                 `Display` is not local
[INFO] [stdout]   |                 move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 2 | pub enum Error {
[INFO] [stdout]   |          ----- `Error` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:236:27
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:236:27
[INFO] [stdout]     |
[INFO] [stdout] 236 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:296:27
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:321:27
[INFO] [stdout]     |
[INFO] [stdout] 321 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:296:27
[INFO] [stdout]     |
[INFO] [stdout] 296 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `i32` does not permit being left uninitialized
[INFO] [stdout]    --> src/video/backends/gl/capabilities.rs:321:27
[INFO] [stdout]     |
[INFO] [stdout] 321 |             let mut val = mem::uninitialized();
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           this code causes undefined behavior when executed
[INFO] [stdout]     |                           help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/res/manifest.rs:112:25
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn dependencies(&self, uuid: Uuid) -> Option<Dependencies> {
[INFO] [stdout]     |                         ^^^^^                        ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn dependencies(&self, uuid: Uuid) -> Option<Dependencies<'_>> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/res/manifest.rs:112:25
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn dependencies(&self, uuid: Uuid) -> Option<Dependencies> {
[INFO] [stdout]     |                         ^^^^^                        ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn dependencies(&self, uuid: Uuid) -> Option<Dependencies<'_>> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/sched/job.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Copy, Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 48 |     execute_fn: unsafe fn(*const ()),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/sched/job.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Copy, Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                              --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 48 |     execute_fn: unsafe fn(*const ()),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.02s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.18.0, winit v0.17.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 6`
[INFO] running `Command { std: "docker" "inspect" "8a534c2f5a415d6d690fe31776eb4ec87a94909e3e4dad488c2df6dec85232ab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a534c2f5a415d6d690fe31776eb4ec87a94909e3e4dad488c2df6dec85232ab", kill_on_drop: false }`
[INFO] [stdout] 8a534c2f5a415d6d690fe31776eb4ec87a94909e3e4dad488c2df6dec85232ab
